1. Field of the Invention
The present invention relates generally to computer aided design (CAD) applications and, in particular, to intuitively controlling the shape of a boundary patch.
2. Description of the Related Art
Computer aided design systems are traditionally used for creating and editing geometric shapes, such as car body parts or engine components. Various modeling operators have been introduced for specific modeling situations. Most noticeable standard ones include loft, sweep and fillet which are well defined over a rectangular domain.
In practical design applications there are often situations to fill arbitrary regions bounded by multiple sides (typically, greater than four) where standard operators are no longer applicable. This calls for a special operator, the n-sided patch or the boundary patch. A boundary patch is defined by a set of input curves over a relatively flat area. Continuity constraints (G0, G1 and G2) can be specified individually for these curves. The patch to be constructed should pass through all given curves and satisfy the continuity constraints within given tolerances.
It is, however, very challenging to construct a boundary patch that not only meets the boundary constraints but also possesses a fair shape under various geometric configurations. As a result, boundary patch has been a long standing problem in both design and research community and there are a large body of proposed solutions to it.
In general, there are two basic approaches to the n-sided problem: multiple patches and single patch. The multiple patches solution takes an n-sided region and subdivides it into a collection of triangular or 4-sided regions. The regions are then filled with standard surface type. The main difficulty with this approach is ensuring the internal smoothness of the resulting patch network. The single patch solution attempts to create a single patch to fill in an n-sided hole. Different techniques have been developed for very specific patch situations. For example, in one technique, a quadratic function is used to fill in three- or five-sided patches. In another technique, quadratics and cubics functions are used for three-, five- and six-sided patches. The problem with these techniques is that often unusual (non-rectangular, non-planar) parametric domains are used and the lack of possibility to control internal shape of the patch.
Another category of filling an n-sided hole is the subdivision approach. The basic process is to generate a surface by starting with a polygonal approximation and refine the approximation iteratively in each subdivision step. The fundamental problem with the subdivision approach, however, is the lack of a good method to handle the smoothness of extraordinary points and to create high quality surfaces.
Commercial CAD systems prefer the single patch approach since only one face needs to be constructed and thus is easier to be integrated in the modeling (especially solid modeling) environment. As the rectangular scheme of non-uniform ration B-spline (NURBS) has become the de facto standard for industrial applications, NURBS is often chosen to represent n-sided patches. First, a surface with a rectangular domain is created that is large enough to cover the entire n-sided hole. The surface is then trimmed back to the hole boundary. In this sense, the patch is a trimmed NURBS surface. This kind of n-sided patch is, however, locked by the boundary constraints, i.e. there are little possibilities to determine/change its interior shape. One can insert additional interior constraints such as interior curves and points to force the patch to pass through. However, these additional constraints introduce some artifacts in the patch shape so that the patch quality (e.g. curvature flow) may suffer. Certain tension control may be achieved but its influence over the entire patch shape is somewhat subtle and limited.
As the foregoing illustrates, what is needed in the art is a mechanism for modifying the patch shape in a direct and intuitive way.